1. Field of the Invention
The present invention generally relates to computer systems, and particularly to a method of providing data communications between different computers in a network, and still more particularly to a method of efficiently transmitting information between a workstation client running a terminal emulation program and a network server which is connected to a computer host, by initializing the client and server with a pre-warmed cache.
2. Description of the Related Art
Computer technology has progressed tremendously to the state where powerful desktop computers are available to the public at relatively low prices. Technological advancements in computer science have occurred swiftly considering that, only ten years or so ago, such powerful computers were confined to very expensive (and physically larger) mainframe computers and minicomputers. These early systems, which are still in use today, provide centralized processing of multiple computer programs ("applications") by a single mainframe host, with one or more "dumb" terminals connected to respective communication ports of the mainframe. This type of terminal does not perform any local processing; it simply allows the user to interface with the mainframe from a remote location, whether in a room next door, or in a distant building. The interface includes at least one user input device (e.g., a keyboard) and at least one user output device (e.g., a video monitor). The mainframe allocates its resources in a shared manner to process commands from the user input devices of all of the connected (and active) terminals, and transmits selective responses (control signals as well as user information) to the user output devices of the terminals. An example of such a terminal is the 3270 Information Display System sold by International Business Machines Corp. (IBM--assignee of the present invention).
These older systems represent a significant investment in hardware and specialized software, and provide a great deal of computing power, and further have lifetimes that may extend for more than another decade, so it is often desirable to continue to use these hosts. An example of such a system is the IBM AS/400 mid-range computing system. Users traditionally accessed the AS/400 system via terminals which were directly connected to and generally designed for the AS/400 system. However, in light of the proliferation of personal computers (PCs) at the workplace, businesses have expressed a desire to allow an existing PC to interface with these sorts of mainframes and minicomputers, i.e., to use the PC as a substitute for a terminal so that the latter equipment does not need to be purchased and maintained (as used herein, "PC" generally refers to any multi-purpose computer adapted for use by a single individual, regardless of the manufacturer, hardware platform, operating system, etc., and could further include stripped-down versions such as so-called network computers).
Accordingly, software programs have been devised which allow a more intelligent PC to mimic a dumb terminal. These programs are generally referred to as emulators, and give the user access to function keys and control sequences which the host applications normally use when communicating with an actual terminal. Three commonly emulated terminals are Digital Equipment Corp.'s VT100 terminal, IBM's 5250 terminal, and IBM's 3270 terminal. Different versions of these emulators are available for different types of PCs (e.g., IBM-compatible versus Macintosh).
Emulators frequently use an application protocol known as TELNET to allow a PC to access a remote host. TELNET relies on a set of communications protocols known as TCP/IP (Transmission Control Protocol/Internet Protocol) which can be used to link various kinds of computers over many different types of media such as the public Internet, private networks, or point-to-point modem communications. The Internet Protocol defines the unit of information to be transmitted across the medium, and provides the basis for "packet" delivery service. The Transmission Control Protocol provides a full duplex stream service allowing a process on one machine to send a stream of data to a process on another. Software implementing the TCP usually resides in the operating system and uses the IP to transmit information across the network. One specific protocol known as TN3270 allows a PC with a TCP/IP connection to negotiate a TELNET session emulating an IBM 3270 terminal; similarly, the TN5250 protocol is used for a TELNET session emulating an IBM 5250 terminal.
PCs have not only been adapted to interface with mainframe hosts by using emulators, but further have been adapted to interface with other PCs by using various communications methods and media to form different types of networks, such as a local area network (LAN). In addition to the PCs which act as workstation clients (the computers that are physically operated by the users), a network also typically has one or more PCs which operate as servers. A network server provides shared services to workstations, such as by supplying common application or data files, or by managing a network peripheral device like a printer or facsimile machine. A single physical PC can even be configured to operate as both a workstation and a server (simultaneously). As noted above, conventional networks often rely on the TCP/IP suite of protocols. Other protocols are also used, with each protocol being responsible for a different part of the communications function, such as the internetwork packet exchange (IPX), systems network architecture (SNA), binary synchronous communications (BISYNC), and asynchronous communications (ASYNC) protocols.
Some newer mainframes and mid-range computers (like IBM's System/370 host) support both a dumb terminal interface and "peer-to-peer" host/PC connectivity strategies (which are typically LAN-based) by providing workstation controllers or front-end processors. Older machines that lack peer-to-peer connectivity may still be incorporated into a client-server distributed environment by implementing terminal emulation in a hybrid system wherein a network "intercept" server is interconnected between an "intercept" client and a host, i.e., the server provides the interface to the host and acts as an intermediary to relay data or processes to and from the client/terminal.
In such a client-server-host system, a significant amount of the data volume from the host is repetitive, i.e., it represents information that has not changed from earlier host transmissions. Re-transmission of this unmodified data adversely affects overall performance of the network, since the information does not really need to be transmitted to the intercept client. Even if a cache or similar mechanism were integrated with the intercept client to locally provide such unmodified data, it would still take a relatively long period of time for a reasonable cache working set to be accumulated. Moreover, much of the information transmitted by the host is also redundant as between multiple intercept clients on the network (including clients having different associated intercept servers), so the performance penalty for building any local cache would be multiplied by the total number of end users, and could become very significant. It would, therefore, be desirable to devise a method of establishing a communications session between a client/terminal and a server/host which reduces performance delays associated with the transmission of information that often remains unmodified over long periods of time. It would be further advantageous if the method were easily extended to a server that provided connections to a plurality of hosts.